<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
ini_set('display_errors',1);            //错误信息
ini_set('display_startup_errors',1);    //php启动错误信息
error_reporting(-1);                    //打印出所有的 错误信息
ini_set('error_log', dirname(__FILE__) . '/error_log.txt'); //将出错信息输出到一个文本文件
//@Description:天天开单API
require_once 'Api.php';
class Ttkd_api extends Api
{
    public function __construct()
    {
        parent::__construct();
        $this->load->helper('Encrypt');
        $this->load->helper('Filter');
//        $this->load->library('Api_log');
//        $this->api_log->setDir('ttkd');
    }

    /**
     * [index description]
     * @param  string $command [调用的接口]
     * @return [json]          [调用返回JSON数据]
     */
    public function run($command = '')
    {
     
        /// 制作 文件日志记录 IP地址
//        $this->_setLevel('info', ' start：'.$command);

        $datas = $this->input->post(Null, true);
        /// 制作 文件日志记录 IP地址
//        $this->_setLevel('info', ' post：'.json_encode($datas));

        // 获取接口权限
        // 判断是否 是公开接口  还是需要token 接口
        // if(1){
        //     // ...
        // }
        if (isset($_GET["echostr"])) {
            $nonce     = $_GET['nonce'];
            $token     = 'utioerlfglcvmbvlkfjgd';
            $timestamp = $_GET['timestamp'];
            $echostr   = $_GET['echostr'];
            $signature = $_GET['signature'];
            //形成数组，然后按字典序排序
            $array = array();
            $array = array($nonce, $timestamp, $token);
            sort($array);
            //拼接成字符串,sha1加密 ，然后与signature进行校验
            $str = sha1( implode( $array ) );
            if( $str == $signature && $echostr ){
                //第一次接入weixin api接口的时候
                echo  $echostr;
                exit;
            }
        };


        $res = $this->_runcommand($command, $datas);
//        $this->_setLevel('info', ' end:'.json_encode($res));


        return_msg($res);

    }

    /**
     * [_runcommand description]
     * @param  [type] $command [description]
     * @param  [type] $datas   [description]
     * @return [type]          [description]
     */
    private function _runcommand($command, $datas)
    {
        if ( ! file_exists(APPPATH.'api/ttkd/'.$command.'.php'))
        {
             return $this->send_error(ERROR_UNEXPECTED_PARAMETER, 'command error');
        }
        
        $this->load->web_api('ttkd/'.$command,'model');
        if(! method_exists($this->model,'run'))
        {
             return $this->send_error(ERROR_LOCAL_COMM, 'NO exist');
        }
        
        return $this->model->run($command, $datas);
    }

    private function _setLevel($level = '', $info = '')
    {
        $line  = array('file'=>__FILE__,'line'=>__LINE__);
        $this->api_log->add($level, $info, $line);
    }
    
}

/* End of file */
/* Location: ./application/controllers/... */